package io.renren.util;

import io.renren.common.constant.Dict;
import lombok.extern.slf4j.Slf4j;

import com.alibaba.druid.util.StringUtils;
import com.alibaba.fastjson.JSONObject;

@Slf4j
public class SmsUtil {
	
	/**
	 * 解析短信
	* @Description: TODO
	* @version: v1.0.0
	* @author: ms
	* @date: 2019年5月16日 上午11:11:19
	 */
	public static JSONObject analyzeSms(JSONObject dataobj) {
		String telephone=dataobj.getString("telephone");
		String content=dataobj.getString("content");
		log.info("短信号码:{},短信内容:{}",telephone,content);
		JSONObject resobj=new JSONObject();
		/*工商银行 ICBC 95588
		      农业银行 ABC  95599
		      建设银行 CCB  95533
		      邮政银行 PSBC 95580
		      陕西信合 SXRCCU 96262
		*/
		switch (telephone) {
			case "95588":
				resobj.put(Dict.AMOUNT, icbcSms(content));
				break;
			case "95599":
				resobj.put(Dict.AMOUNT, abcsms(content));
				break;
			case "95533":
				resobj.put(Dict.AMOUNT, ccbsms(content));
				break;
			case "95580":
				resobj.put(Dict.AMOUNT, psbcsms(content));
				break;
			case "96262":
				resobj.put(Dict.AMOUNT, sxrccusms(content));
				break;
			default:
				resobj.put(Dict.AMOUNT, 0D);
				break;
		}
		log.info("解析短信后金额为:"+resobj.toJSONString());
		return resobj;
	}
	
	/**
	* @Description: 工商银行入款短信
	* @version: v1.0.0
	* @author: ms
	* @date: 2019年5月16日 上午11:22:01
	* @content 您尾号6173卡1月23日16:55快捷支付收入(甘肃川安合商贸有...支付宝)12.20元，余额13.20元。【工商银行】
	* @content 您尾号5938卡5月14日00:39快捷支付收入(郭彩支付宝转账支付宝)26,000元，余额26,036.03元。【工商银行】
	*/
	private static Double icbcSms(String content){
		String amount=content.replaceAll(",", "").replaceAll("^.*?(支付宝\\))?([0-9\\.]{1,})元.*?$", "$2");
		if(StringUtils.isNumber(amount)){
			return Double.valueOf(amount);
		}else{
			return 0D;
		}
		
	}
	
	/**
	 * @Description: 农业银行入款短信
	 * @version: v1.0.0
	 * @author: ms
	 * @date: 2019年5月16日 上午11:22:01
	 * @content 【中国农业银行】支付宝（中国）网络技术有限公司于05月13日19:32向您尾号1379账户完成代付交易人民币12.00，余额13.97 
	 */
	private static Double abcsms(String content){
		//String amount=content.replaceAll(",", "").replaceAll("^交易人民币[\\d\\.]+$", "");
		String contentstr=content.replaceAll(",", "");
		String amount=contentstr.substring(contentstr.indexOf("交易人民币")+5, contentstr.indexOf("，余额"));
		if(StringUtils.isNumber(amount)){
			return Double.valueOf(amount);
		}else{
			return 0D;
		}
	}
	
	/**
	 * @Description: 建设银行入款短信
	 * @version: v1.0.0
	 * @author: ms
	 * @date: 2019年5月16日 上午11:22:01
	 * @content 您尾号8271的储蓄卡账户5月16日13时58分支付机构提现收入人民币23000.00元,活期余额23266.43元。[建设银行]
	 */
	private static Double ccbsms(String content){
		String contentstr=content.replaceAll(",", "");
		String amount=contentstr.substring(contentstr.indexOf("收入人民币")+5, contentstr.indexOf("元活期余额"));
		if(StringUtils.isNumber(amount)){
			return Double.valueOf(amount);
		}else{
			return 0D;
		}
	}
	
	/**
	 * @Description: 邮政银行入款短信
	 * @version: v1.0.0
	 * @author: ms
	 * @date: 2019年5月16日 上午11:22:01
	 * @content 【邮储银行】19年05月22日13:26您尾号580账户提现金额1.00元，余额13.94元。
	 */
	private static Double psbcsms(String content){
		String contentstr=content.replaceAll(",", "");
		String amount=contentstr.substring(contentstr.indexOf("提现金额")+4, contentstr.indexOf("元，余额"));
		if(StringUtils.isNumber(amount)){
			return Double.valueOf(amount);
		}else{
			return 0D;
		}
	}
	
	/**
	 * @Description: 陕西信合入款短信
	 * @version: v1.0.0
	 * @author: ms
	 * @date: 2019年5月16日 上午11:22:01
	 * @content 【陕西信合】您7857账户2019年05月23日08:31,支付宝转入1.00元.余额[2.02].
	 */
	private static Double sxrccusms(String content){
		String contentstr=content.replaceAll(",", "");
		String amount=contentstr.substring(contentstr.indexOf("支付宝转入")+5, contentstr.indexOf("元.余额"));
		if(StringUtils.isNumber(amount)){
			return Double.valueOf(amount);
		}else{
			return 0D;
		}
	}
	
	
	public static void main(String[] args) {
		/*System.err.println(icbcSms("您尾号6173卡1月23日16:55快捷支付收入(甘肃川安合商贸有...支付宝)12.20元，余额13.20元。【工商银行】"));
		System.err.println(icbcSms("您尾号5938卡5月14日00:39快捷支付收入(郭彩支付宝转账支付宝)26,000元，余额26,036.03元。【工商银行】"));
		System.err.println(abcsms("【中国农业银行】支付宝（中国）网络技术有限公司于05月13日19:32向您尾号1379账户完成代付交易人民币12,000.00，余额13.97"));*/
		//System.err.println(ccbsms("您尾号8271的储蓄卡账户5月16日13时58分支付机构提现收入人民币23000.00元,活期余额23266.43元。[建设银行]"));
		JSONObject dataobj=new JSONObject();
		//dataobj.put("telephone", "95533");
		//dataobj.put("content", "您尾号8271的储蓄卡账户5月16日13时58分支付机构提现收入人民币23000.00元,活期余额23266.43元。[建设银行]");
		System.err.println(analyzeSms(dataobj));
	}
}
